/**
 * 
 */
package com.servicecloud.provider.service.impl;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.MessageBuilder;

import com.servicecloud.channel.DefaultChannelProcess;
import com.servicecloud.provider.service.IMessageProvider;

/**
 * @Description
 * 
 * @author Gavin<br>
 *         2019年8月20日
 */
//@EnableBinding(Source.class) // 消息的管道，可以看看source源代码(相当于定义了一个默认的通道用来与交换机队列交互)
@EnableBinding(DefaultChannelProcess.class) // 使用自定义的消息通道
public class MessageProviderImpl implements IMessageProvider {
	@Qualifier(DefaultChannelProcess.OUTPUT)//由于系统内置提供了一个messagechannel的ouputbean，所以这儿需要指定一个新的来源，不然会有多个bean冲突
	@Autowired
	private MessageChannel output;

	@Override
	public void send(Map<String, Object> map) {
		this.output.send(MessageBuilder.withPayload(map).build());// 创建并发送消息
	}

}
